This invention is in the field of computing, and in particular is directed to the management and control of computing environments, such as a computer network. Specifically, the invention relates to the discovery of which physical resources are employed in providing a particular virtual resource.
One of the major issues facing the IT industry is resource discovery. A large and increasing number of IT resources are associated with the delivery of even the simplest service. Identifying these resources and associating them with a particular service is a significant challenge. The re-emergence of centralized IT provisioning (e.g. outsourcing and Cloud Computing) has increased the number of resources collocated at a single site. With the addition of virtualization, whilst many aspects of management become easier, the discovery problem, that is, identifying the physical resources involved in providing a particular service or virtual resource, becomes greater.
Virtual resources, servers in particular, unlike their physical counterparts, have the ability to move. Virtual machine migration involves a multiple stage process. The virtual server is stopped, copied out of the physical memory of its physical host, and copied to another physical host and restarted. In the process, management tools may lose track of which physical server has gained or lost a given virtual server. IT management tools are designed to address this issue, but nonetheless the problem persists. A virtual server can be hosted on any physical server and even change the server on which it is hosted. Identifying where a virtual resource is hosted is critical to the resource management. For example, if a given service (e.g. an online purchasing system) is running slowly, it is important to identify which physical servers are involved in the service. However, this can be challenging.
This problem is amplified in a Cloud Computing environment, where the layers between IaaS, PaaS, and SaaS mean that management tools at one layer are not given access to provisioning details at the lower layers. In a Cloud Computing environment, a Software as a Service (SaaS) is built on a Platform as a Service (PaaS), which runs on an Infrastructure as a Service (IaaS). These layers are isolated from each other, creating further barriers to the discovery process. A resource, physical or virtual, normally has some form of identifier that provides it with a unique identity. These are usually assigned at provisioning time. Typically resources can advertise their existence by broadcasting this identifier across the network.
Software management tools can easily collect this identity information along with other information by monitoring the network protocol traffic. While the location of a physical resource can be determined by cross-referencing this identity information with an asset register, the same is not true of virtual resources. As they can be created dynamically (virtual resources can easily be duplicated and started in an already existing host) or moved from host to host (as described above), determining their location is currently not possible or at best unreliable and error prone.